import axios from 'axios'
import { getToken } from '@/composables/auth';
import { showMessage } from '@/composables/utils';
import store from '@/store';

// 创建axios实例
const instance = axios.create({
    baseURL: '/api/admin',
    timeout: 7000
})


// 添加请求拦截器
instance.interceptors.request.use(config => {
    // 在发送请求之前做些什么
    const token = getToken()
    //console.log('统一添加请求头中的 Token:' + token)

    if (token) {
        // config.headers['token'] = 'Bearer' + { token }
        config.headers['token'] = token
    }
    return config
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});



// 添加响应拦截器
instance.interceptors.response.use(response => {
    // 对响应数据做点什么
    //console.log(response)
    return response.data.data
}, function (error) {
    // 对响应错误做点什么
    const errorMsg = error.response.data.msg || '请求失败，请稍后再试'

    if (errorMsg == "非法token,请先登录！") {
        store.dispatch('logout').finally(() => {
            location.reload()
        })
    }


    showMessage(errorMsg, 'error')


    return Promise.reject(error);
});


// 暴露接口
export default instance;